MySQL 问题排查流程
常见问题解决
如何确定导致问题的原因
硬件问题
当您遇到问题时,您应该做的第一件事是找出导致它的设备或设备:
如果您有以下症状之一,那么它可能是硬件问题(如内存,主板,CPU或硬盘)或内核问题:
-
机器无法应答远程机器的ping。
-
MySQL无关的其他程序有异常.
-
您的系统意外重启。
排查硬件步骤
-
在这种情况下,您应该首先检查所有电缆并运行一些诊断工具来检查您的硬件! 您还应该检查操作系统是否有任何可能解决问题的修补程序,更新或Service Pack。 还要检查所有库(例如 glibc )是否是最新的。
-
使用具有ECC内存的机器来提前发现内存问题。
-
请检查您的系统日志文件( /var/log/messages 或类似 文件 ),以了解您的问题。 如果您认为问题出在MySQL中,您还应该检查MySQL的日志文件。
排查数据库和操作系统
-
如果您认为自己没有硬件问题,则应该尝试找出导致问题的程序。 尝试使用 top , ps ,任务管理器或某些类似的程序来检查哪个程序正在占用所有CPU或正在锁定机器。
-
使用 top,df 或类似程序检查是否内存不足,磁盘空间,文件描述符或其他一些关键资源。
-
如果问题是一些失控的过程,你可以尝试杀死它。 如果它无法终止,则操作系统中可能存在BUG。
-
如果在检查了MySQL服务器或MySQL客户端导致问题之后,是时候为我们的运维团队创建错误报告了。 在错误报告中,尝试详细描述系统的行为方式以及您的想法。 您还可以说明为什么您认为MySQL导致了问题。
-
尝试详细描述哪个程序不起作用以及您看到的所有表面现象和日志。
如果MySQL 相关程序失败,需要收集以下信息:
-
有问题的程序是否出现了段错误(是否core)?
-
程序是否占用了所有可用的CPU? 检查top 。
-
如果
mysqld
服务器导致问题,你可以使用mysqladmin -u root ping
或mysqladmin -u root processlist
获得任何响应 吗? -
当您尝试连接到MySQL服务器时,客户端程序报什么错误?